package org.acompanhamento.domain;

import org.hibernate.type.Type;

import jmine.tec.persist.hibernate.traverser.EntityVisitor;
import jmine.tec.persist.hibernate.traverser.TraversingStep;
import jmine.tec.persist.hibernate.traverser.VisitedCollectionProperty;
import jmine.tec.persist.hibernate.traverser.VisitedComponentProperty;
import jmine.tec.persist.hibernate.traverser.VisitedEntity;
import jmine.tec.persist.hibernate.traverser.VisitedMapProperty;
import jmine.tec.persist.hibernate.traverser.VisitedProperty;

public class BaseEntityVisitor<R> implements EntityVisitor<R> {

	@Override
	public R result() {
		return null;
	}

	@Override
	public TraversingStep visitEntity(VisitedEntity entity) {
		return TraversingStep.INTO;
	}

	@Override
	public TraversingStep visitProperty(VisitedProperty<? extends Type> property) {
		return TraversingStep.NEXT;
	}

	@Override
	public TraversingStep visitComponentProperty(
			VisitedComponentProperty property) {
		return TraversingStep.NEXT;
	}

	@Override
	public TraversingStep visitMapProperty(VisitedMapProperty property) {
		return TraversingStep.NEXT;
	}

	@Override
	public TraversingStep visitCollectionProperty(
			VisitedCollectionProperty property) {
		return TraversingStep.NEXT;
	}

}
